using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
using System.Collections.Generic;
using System.Collections;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Net;
using Microsoft.Xna.Framework.Storage;

using SumGam.Structs;
using SumGam.Classes;

namespace SumGam.Globals //todo move everything to more specific classes
{
    public static class Settings
    {
        public static int ScreenWidth = 480;
        public static int ScreenHeight = 480;
    }
    public static class Misc
    {
        public static Hashtable TimerInitList = new Hashtable();
        public static Hashtable TimerExecList = new Hashtable();
        public static Hashtable TimerRemoveList = new Hashtable();
        public static GameTime Time;
        public static KeyboardState OldKeyboardState = Keyboard.GetState();
        public static KeyboardState NewKeyboardState;
        public static Vector2 ScreenOrigin;
    }
    public static class Fonts
    {
        public static SpriteFont DialogFont;
        public static SpriteFont TitleFont;
    }
    public static class Rendering
    {        
        public static SpriteBatch spriteBatch;
    };
    public static class Textures
    {
        public static Texture2D TitleScreen;
        public static Texture2D BlankTexture;
        public static Texture2D DialogHeader;
    }
    public static class Audio
    {
        public static SoundBank Sounds;
        public static WaveBank Waves;
    }
    public static class Delegates
    {
        public delegate void Generic();
        public delegate void MapEvent(Map map);
    }
    public static class GameServices
    {
        public static AudioEngine Audio;
        public static GraphicsDeviceManager Graphics;
        public static ContentManager Content;
    }
}